/**
 * 
 */
package cn.maszy.service.impl.investment;

import java.util.Date;
import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.maszy.common.DateUtils;
import cn.maszy.common.Pager;
import cn.maszy.common.SessionFactory;
import cn.maszy.dao.investment.B_T_Ufp_StaffinformationMapper;
import cn.maszy.model.investment.B_T_Ufp_Staffinformation;
import cn.maszy.model.investment.B_T_Ufp_StaffinformationExample;
import cn.maszy.model.investment.B_T_Ufp_StaffinformationExample.Criteria;
import cn.maszy.service.investment.B_T_Ufp_StaffinformationService;

/** 
 * @作者 Allen Shu 
 * @创建日期 2012-6-2 
 * @版本 V 1.0 
 */
@Service
public class B_T_Ufp_StaffinformationServiceImpl implements B_T_Ufp_StaffinformationService{
	@Autowired
	private B_T_Ufp_StaffinformationMapper b_T_Ufp_StaffinformationMapper;
	
	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#update(cn.maszy.model.investment.B_T_Ufp_Admin, cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int update(B_T_Ufp_Staffinformation b_T_Ufp_Staffinformation,String flag) {
		// TODO Auto-generated method stub
			if(!"".equals(flag) && "edit".equals(flag)){
				 b_T_Ufp_Staffinformation.setUpdateTime(new Date());
				 b_T_Ufp_Staffinformation.setUpdateUser(SessionFactory.getSessionUserRealNam());
				 return b_T_Ufp_StaffinformationMapper.updateByPrimaryKeySelective(b_T_Ufp_Staffinformation);
			}
		 if(b_T_Ufp_Staffinformation.getStaffId() == null || "".equals(b_T_Ufp_Staffinformation.getStaffId())){
			 b_T_Ufp_Staffinformation.setStaffId(SessionFactory.getSessionEmployeeId());
			 b_T_Ufp_Staffinformation.setIsDelete(0);
			 b_T_Ufp_Staffinformation.setCreateTime(new Date());
			 b_T_Ufp_Staffinformation.setCreateUser(SessionFactory.getSessionUserRealNam());
			 b_T_Ufp_Staffinformation.setDepname(SessionFactory.getSessionUserDepNam());
			 b_T_Ufp_Staffinformation.setStaffName(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_StaffinformationMapper.insert(b_T_Ufp_Staffinformation);
		 }
		 else
		 {
			 b_T_Ufp_Staffinformation.setUpdateTime(new Date());
			 b_T_Ufp_Staffinformation.setUpdateUser(SessionFactory.getSessionUserRealNam());
			 b_T_Ufp_Staffinformation.setStaffId(SessionFactory.getSessionEmployeeId());
			 b_T_Ufp_Staffinformation.setDepname(SessionFactory.getSessionUserDepNam());
			 b_T_Ufp_Staffinformation.setStaffName(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_StaffinformationMapper.updateByPrimaryKeySelective(b_T_Ufp_Staffinformation);
		 }
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectOne(java.lang.String)
	 */
	public B_T_Ufp_Staffinformation selectOne(String staffId) {
		// TODO Auto-generated method stub
	
		B_T_Ufp_Staffinformation record=b_T_Ufp_StaffinformationMapper.selectByPrimaryKey(staffId);
		if("".equals(staffId)){
			record = new B_T_Ufp_Staffinformation();
		}

		return record;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#delete(java.lang.String)
	 */
	public int delete(String checkIds) {
		// TODO Auto-generated method stub
		for (String id : checkIds.split(", ")) {
			b_T_Ufp_StaffinformationMapper.deleteByPrimaryKey(id);
		}
		return 1;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#count(cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int count(B_T_Ufp_StaffinformationExample example,B_T_Ufp_StaffinformationMapper b_T_Ufp_StaffinformationMapper) {
		// TODO Auto-generated method stub
		return b_T_Ufp_StaffinformationMapper.countByExample(example);
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectList(cn.maszy.model.investment.B_T_Ufp_Admin)
	 */
	public Pager<B_T_Ufp_Staffinformation> selectList(B_T_Ufp_Staffinformation b_T_Ufp_Staffinformation,Pager<B_T_Ufp_Staffinformation> pager) {
		// TODO Auto-generated method stub
		// 添加查询条件
		B_T_Ufp_StaffinformationExample example=new B_T_Ufp_StaffinformationExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_Staffinformation!=null){
			if(b_T_Ufp_Staffinformation.getStatus()!=null&&!"".equals(b_T_Ufp_Staffinformation.getStatus())){
				criteria.andStatusEqualTo(b_T_Ufp_Staffinformation.getStatus());
			} 
			if(b_T_Ufp_Staffinformation.getStaffName() != null || "".equals(b_T_Ufp_Staffinformation.getStaffName()))
			 {
				criteria.andStaffNameLike("%"+b_T_Ufp_Staffinformation.getStaffName()+"%");
			 }
			if(b_T_Ufp_Staffinformation.getDepname() != null || "".equals(b_T_Ufp_Staffinformation.getDepname()))
			 {
				criteria.andDepnameLike("%"+b_T_Ufp_Staffinformation.getDepname()+"%");
			 }
		}else{
			criteria.andStaffIdIsNotNull();
		}
		criteria.andIsDeleteEqualTo(0);
		criteria.andStatusEqualTo("在职");
		example.or(criteria);
		int totalCount=new B_T_Ufp_StaffinformationServiceImpl().count(example,b_T_Ufp_StaffinformationMapper);
		pager.setTotalRecords(totalCount);
		example.setLimitStart(pager.getStartRecord());
		example.setLimitEnd(pager.getPageSize());
		example.setOrderByClause(pager.getOrderField()+" "+pager.getOrderDirection());
		
		// 取得总的记录条数
		List<B_T_Ufp_Staffinformation>  list=b_T_Ufp_StaffinformationMapper.selectByExample(example);
		pager.setPageRecords(list);
		return pager;
	}

	public B_T_Ufp_Staffinformation selectwork(String name, String DepNam) {
		B_T_Ufp_StaffinformationExample example = new B_T_Ufp_StaffinformationExample();
		example.or().andStaffNameEqualTo(name).andDepnameEqualTo(DepNam);
		List<B_T_Ufp_Staffinformation> record=b_T_Ufp_StaffinformationMapper.selectByExample(example);
		B_T_Ufp_Staffinformation b_T_Ufp_Staffinformation = new B_T_Ufp_Staffinformation();
		if(record.size()==0){
			b_T_Ufp_Staffinformation = null;
		}else{
			b_T_Ufp_Staffinformation = record.get(0);
		}
			
		return b_T_Ufp_Staffinformation;
	}
}
